class Tool:
    count = 0  # 类属性，类似于类的全局变量

    def __init__(self, name):
        self.name = name
        Tool.count += 1

    def __del__(self):
        Tool.count -= 1

    def func(self):
        print(f'{self.name}可以做很多事情')

    @classmethod
    def show_tool_count(cls):
        '''
        当你不使用对象属性，只使用类属性，用类方法
        :return:
        '''
        print(cls.count)  # 使用类属性


    @staticmethod
    def help():
        '''
        不使用对象属性也不使用类属性
        :return:
        '''
        print('这是一个工具类，作用是实例化各种工具对象')
if __name__ == '__main__':
    tool1 = Tool('斧子')
    print(Tool.count)  # 等价于tool1.count，但不规范
    tool2 = Tool('锤子')
    print(Tool.count)
    del tool1
    print(Tool.count)

    # Tool.name = '工具类'   不规范，不要在类外给类增加属性
    # print(Tool.name)
    # print(tool2.name)
    print('*' * 50)
    Tool.show_tool_count()

    Tool.help()